Designing Reusable Patterns of Cross-Cutting Behaviour with Composition Patterns
نویسنده
چکیده
1. INTRODUCTION The current limitations in the decomposition capabilities of object-oriented software force the tangling of cross-cutting behaviour with all other elements that it affects. This has a negative impact across the development lifecycle, from comprehensibility, traceability, evolvability and reusability points of view. This problem has been addressed within the programming phase by the subject-oriented programming [4, 10] and the aspect-oriented programming [7] paradigms. Within these paradigms, cross-cutting behaviour may be cleanly separated from functional code. However, to gain the benefits of software engineering across the development lifecycle, it is important to be able to provide similar separation capabilities at earlier stages in the lifecycle. Currently, this problem has not been effectively addressed for the design phase. Within the subject-oriented design paradigm [2,3], composition patterns are defined to capture the design of patterns of cross-cutting behaviour. These patterns may then be composed with any design model requiring that behaviour. The approach is therefore easily mapped to any programming model that supports similar separation of concerns, as illustrated in this paper.
منابع مشابه
Separating Crosscutting Concerns Across the Lifecycle: From Composition Patterns to AspectJ and Hyper/J
Requirements that have a crosscutting impact on software (such as distribution or persistence) present many problems for software development that manifest themselves throughout the lifecycle. Inherent properties of crosscutting requirements, such as scattering (where their support is scattered across multiple classes) and tangling (where their support is tangled with elements supporting other ...
متن کاملComposing pattern-based components and verifying correctness
Designing large software systems out of reusable components has become increasingly popular. Although liberal composition of reusable components saves time and expense, many experiments indicate that people will pay for this (liberal composition) sooner or later, sometimes paying even a higher price than the savings obtained from reusing components. Thus, we advocate that more rigorous analysis...
متن کاملEvolution Support by Homogeneously Documenting Patterns, Aspects and Traces
The evolution of complex software systems is promoted by software engineering principles and techniques like separation of concerns, encapsulation, stepwise refinement, and reusability of design solutions. Design patterns capture the expertise for reusable design solutions. Aspect-oriented programming is a methodology that enables the modularization of cross-cutting concerns. Traceability links...
متن کاملMapping Composition Patterns to AspectJ and Hyper/J
In earlier work, we demonstrated the successful separation of the designs of crosscutting concerns into composition patterns [1]. In this paper, we demonstrate the mapping of crosscutting designs to two programming models that support similar approaches to separation within code—AspectJ [7] and Hyper/J [5]. We first illustrate the design of the Observer pattern using the composition pattern app...
متن کاملUsing Structure and Dependency Tracing Patterns for Aspect Composition
Aspects avoid tangled solutions for cross-cutting design concerns. However, there are various reasons why it may be hard to use an aspect language as a solution, even though developers are faced with cross-cutting design concerns. For instance, certain limitations of specific aspect composition (or weaving) mechanisms may hinder the use of aspects or the use is cumbersome. Or because of particu...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000